#ifndef _GAMEOBJECT_H_
#define _GAMEOBJECT_H_

#include "CSprite.h"
#include "Singleton.h"
#include "CCamera.h"
#include "SweptAABB.h"
#include <list>
using namespace std;
class GameObject
{
public:
	CSprite* sprite;
	//posX, posY -> toa do center
	float posX, posY;
	int width;
	int height;
	EnumID id;
	bool canMove;
	bool active;

	virtual void Update(int dt);
	virtual void Draw(CCamera*);
	virtual void ProcessInput(LPDIRECT3DDEVICE9 d3ddv, int t);
	virtual void UpdateAction(Action action);
	virtual void OnKeyDown(int KeyCode);
	virtual void CreateSprite();
	virtual void Collision(list<GameObject*> obj, int dt);
	ECollisionDirect GetCollisionDirect(float normalx, float normaly);
	virtual Box GetBox();

	GameObject(void);
	//GameObject(float posX, float posY, float vx, float vy, EnumID id);
	GameObject(float posX, float posY, EnumID id);
	~GameObject(void);
};

#endif
